// my-vite-plugin.js
// @ts-ignore
export default function randomLetterPlugin(options = {}) {
  const letters = [
    "A",
    "B",
    "C",
    "D",
    "E",
    "F",
    "G",
    "H",
    "I",
    "J",
    "K",
    "L",
    "M",
    "N",
    "O",
    "P",
    "Q",
    "R",
    "S",
    "T",
    "U",
    "V",
    "W",
    "X",
    "Y",
    "Z",
  ];
  let config = {};
  const printRandomLetter = () => {
    const randomIndex = Math.floor(Math.random() * letters.length);
    const randomLetter = letters[randomIndex];
    console.log(`随机字母：${randomLetter}`);
  };

  return {
    // 插件名称
    name: "randomLetterPlugin",
    config(config: any) {
      // console.log("config", config);
    },
    configResolved(config: any) {
      console.log("configResolved", config);
    },
    // @ts-ignore
    transform(code, id, options) {
      // 仅对特定文件处理，例如只对 .js 文件处理
      if (id.endsWith("main.ts")) {
        console.log(`正在转换模块：${id}`, options);
        return `${code}\nif (typeof window !== 'undefined'){
          const letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
          const printRandomLetter = () => {
            const randomIndex = Math.floor(Math.random() * letters.length);
            const randomLetter = letters[randomIndex];
            return randomLetter
          };
          console.log('%c'+ printRandomLetter(),'color:red;font-size:20px;font-weight:800;background:#fff;padding:8px')
        }`;
      }
      // 对于其他文件不做处理
      return code;
    },
    // 可选：开发服务器配置，比如中间件的添加
    // @ts-ignore
    configureServer(server) {
      // 这里可以访问 dev server 实例，例如添加自定义中间件
      console.log("configureServer hook 被调用 ~");
      printRandomLetter();
    },
    // 可选：针对 index.html 的转换处理
    // @ts-ignore
    transformIndexHtml(html) {
      console.log("transformIndexHtml hook 被调用");
      // 例如，在 <head> 里插入自定义内容
      return html.replace(/<head>/, `<head>\n  <!-- randomLetterPlugin -->`);
    },
  };
}
